import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

import axios from 'axios'
import Qs from 'qs'
import MintUI from 'mint-ui'
import 'mint-ui/lib/style.css'



Vue.use(MintUI)

Vue.prototype.$http = axios
Vue.prototype.qs = Qs

axios.defaults.baseURL = "https://d33a5037-6c63-4e92-8bb1-30018ab701ea.bspapp.com/http"


Vue.config.productionTip = false

// 接着你可以在代码中直接引入 Vant 组件
// 插件会自动将代码转化为方式二中的按需引入形式
import { Search, Tab, Tabs, Tabbar, TabbarItem, Grid, GridItem, Lazyload, Cell, CellGroup, NavBar, Icon, Uploader, Form, Field, Toast, Button,Picker,Popup, Image as VanImage , DatetimePicker} from 'vant';//vant
Vue.use(Search); //组件全局挂载的方式 搜索
Vue.use(Tab); //标签页
Vue.use(Tabs);
Vue.use(Tabbar); //标签栏
Vue.use(TabbarItem);
Vue.use(Grid); //宫格
Vue.use(GridItem);

Vue.use(Cell); //单元格
Vue.use(CellGroup);
Vue.use(NavBar); //导航栏
Vue.use(Icon); //图标
Vue.use(Uploader);//文件上传
Vue.use(Form);// 表单
Vue.use(Field);
Vue.use(Toast);//轻提示
Vue.use(Button);//button按钮
Vue.use(Picker);//选择器
Vue.use(Popup);//弹出层
Vue.use(VanImage);//图片
Vue.use(DatetimePicker);//时间选择


Vue.mixin({
	data(){
		return{
			baseColor:'#07c160'
		}
	},
	methods:{
		// 验证是否登录
		checkLogin(url='/log',msg='请先登录',t=500){
			
			// 如果没有uid 就是没有登录
			if(!this.$store.state.uid){
				this.$toast(msg);
				setTimeout(v=>{
					this.$router.push(url);
				},t)
				return false
			}
			return true
		}
		
	},
	
})


Vue.prototype.$bus=new Vue()

let token = localStorage.getItem('token');
if(token){
	// 有token 说明之前登陆过
	
	// console.log(token);
	// mutations 对应 commit
	// 用mutations里的方法 要用commit来调
	// actions 对应 dispatch
	// 用actions里的方法 要用dispatch来调
	store.dispatch('getUserInfo',token)
	.then(res=>{
		new Vue({
		  router,
		  store,
		  render: h => h(App)
		}).$mount('#app')// 拿着token等接口请求成功以后再执行
	})
	//  /user/getuserInfo 可能在多个地方都被用得到
	// 返回用户 uid
	// 再次存到vuex
}else{
	// 你是第一次进来 原来没登陆过
	new Vue({
	  router,
	  store,
	  render: h => h(App)
	}).$mount('#app')
}





